package internal

import (
	"embed"
	"io/fs"
	"net/http"
)

//go:embed templates/**/*
var Templates embed.FS

//go:embed static/**/*
var Static embed.FS

// GetStaticFS 返回静态文件系统
func GetStaticFS() http.FileSystem {
	return http.FS(Static)
}

// GetAssetsFS 返回assets文件系统
func GetAssetsFS() http.FileSystem {
	assetsFS, err := fs.Sub(Templates, "templates/assets")
	if err != nil {
		return http.FS(Templates)
	}
	return http.FS(assetsFS)
}

// GetCSSFS 返回css文件系统
func GetCSSFS() http.FileSystem {
	cssFS, err := fs.Sub(Templates, "templates/css")
	if err != nil {
		return http.FS(Templates)
	}
	return http.FS(cssFS)
}

// GetJSFS 返回js文件系统
func GetJSFS() http.FileSystem {
	jsFS, err := fs.Sub(Templates, "templates/js")
	if err != nil {
		return http.FS(Templates)
	}
	return http.FS(jsFS)
}

// GetTemplatesFS 返回模板文件系统
func GetTemplatesFS() http.FileSystem {
	return http.FS(Templates)
}

// GetHTMLGlob 返回HTML模板路径
func GetHTMLGlob() string {
	return "templates/*.html"
}
